using System;
using System.Collections.Generic;
using System.Text;

namespace Diffluxum.CCScoring
{
    public interface IUserScorer
    {

        void AddSuccessfulBuild(BuildResult build);

        string UserName
        {
            get;
        }

        int GreenToGreenBuilds
        {
            get;
        }

        int RedToGreenBuilds
        {
            get;
        }

        int GreenToRedBuilds
        {
            get;
        }

        int RedToRedBuilds
        {
            get;
        }

        int CheckinsToRedBuild
        {
            get;
        }

        TimeSpan TotalCausedBreakingTime
        {
            get;
        }

        TimeSpan TotalSubmittedToBreakingTime
        {
            get;
        }

        IList<IBrokenBuildsSpan> CausedBreakSpans
        {
            get;
        }

        IList<IBrokenBuildsSpan> CheckedInToBreakSpans
        {
            get;
        }
        
        void AddGrade(int points, string reason);

        int TotalPoints
        {
            get;
        }

        void AddBrokenBuildsSpan(IBrokenBuildsSpan brokenSpan);

        IEnumerable<CCGrade> Grades
        {
            get;
        }
    }
}
